﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;

namespace Skeleton.Crud
{
    /// <summary>
    /// The basic IRepository interface.
    /// </summary>
    /// <typeparam name="TEntity">The type of the entity.</typeparam>
    public interface IRepository<TEntity, TContext> : IReadonlyRepository<TEntity, TContext>
        where TEntity : class, IEntity, new()
        where TContext : DbContext, new()
    {
        /// <summary>
        /// Query the repository
        /// </summary>
        /// <returns>An IQueryable containing types of TEntity.</returns>
        IQueryable<TEntity> GetQuery();
    }
}